bitkeeper revision 1.824 (40601cf9uRnKyyagj6umr4Oaf_-gWQ)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 23 Mar 2004 11:18:17 +0000 (11:18 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Tue, 23 Mar 2004 11:18:17 +0000 (11:18 +0000)
Many files:
  xeno -> xen renames.
xen_proc.c:
  Rename: xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c -> xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c
xen_proc.h:
  Rename: xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h -> xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h
Xen-HOWTO.txt:
  Rename: docs/Xeno-HOWTO.txt -> docs/Xen-HOWTO.txt

21 files changed:
.rootkeys
Makefile
README
README.CD
docs/Makefile
docs/Xen-HOWTO.txt [new file with mode: 0644]
docs/Xeno-HOWTO.txt [deleted file]
docs/interface.tex
docs/pdb.txt
extras/mini-os/h/types.h
extras/mini-os/kernel.c
tools/misc/xen-clone
tools/xc/lib/xc_linux_restore.c
tools/xc/lib/xc_linux_save.c
tools/xc/lib/xc_private.h
xenolinux-2.4.25-sparse/Makefile
xenolinux-2.4.25-sparse/arch/xen/drivers/console/console.c
xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c [new file with mode: 0644]
xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c [deleted file]
xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h [new file with mode: 0644]
xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h [deleted file]

index a022ce035e970a69722e88e3e983c864d3fdedbe..b3ac44531b364d1676556293d5a011e4a4a63e68 100644 (file)
--- a/.rootkeys
+++ b/.rootkeys
@@ -9,7 +9,7 @@
 405ef604hIZH5pGi2uwlrlSvUMrutw docs/Console-HOWTO.txt
 3f9e7d53iC47UnlfORp9iC1vai6kWw docs/Makefile
 40083bb4LVQzRqA3ABz0__pPhGNwtA docs/VBD-HOWTO.txt
-4021053fmeFrEyPHcT8JFiDpLNgtHQ docs/Xeno-HOWTO.txt
+4021053fmeFrEyPHcT8JFiDpLNgtHQ docs/Xen-HOWTO.txt
 3f9e7d60PWZJeVh5xdnk0nLUdxlqEA docs/eps/xenlogo.eps
 3f9e7d63lTwQbp2fnx7yY93epWS-eQ docs/figs/dummy
 3f9e7d564bWFB-Czjv1qdmE6o0GqNg docs/interface.tex
 3e5a4e66aHCbQ_F5QZ8VeyikLmuRZQ xenolinux-2.4.25-sparse/arch/xen/kernel/traps.c
 3e5a4e66-9_NczrVMbuQkoSLyXckIw xenolinux-2.4.25-sparse/arch/xen/lib/Makefile
 3e5a4e6637ZDk0BvFEC-aFQs599-ng xenolinux-2.4.25-sparse/arch/xen/lib/delay.c
-3f68905cF5i8-NYpIhGjKmh0y8Gu5g xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c
+3f68905cF5i8-NYpIhGjKmh0y8Gu5g xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c
 3e5a4e66croVgpcJyJuF2ycQw0HuJw xenolinux-2.4.25-sparse/arch/xen/mm/Makefile
 3e5a4e66l8Q5Tv-6B3lQIRmaVbFPzg xenolinux-2.4.25-sparse/arch/xen/mm/fault.c
 3e5a4e668SE9rixq4ahho9rNhLUUFQ xenolinux-2.4.25-sparse/arch/xen/mm/hypervisor.c
 3fa8e3f0kBLeE4To2vpdi3cpJbIkbQ xenolinux-2.4.25-sparse/include/asm-xen/suspend.h
 3e5a4e68mTr0zcp9SXDbnd-XLrrfxw xenolinux-2.4.25-sparse/include/asm-xen/system.h
 3f1056a9L_kqHcFheV00KbKBzv9j5w xenolinux-2.4.25-sparse/include/asm-xen/vga.h
-3f689063nhrIRsMMZjZxMFk7iEINqQ xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h
+3f689063nhrIRsMMZjZxMFk7iEINqQ xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h
 3f056927gMHl7mWB89rb73JahbhQIA xenolinux-2.4.25-sparse/include/linux/blk.h
 3e5a4e68WLX3B8owTvktP3HHOtznPQ xenolinux-2.4.25-sparse/include/linux/major.h
 401c0590D_kwJDU59X8NyvqSv_Cl2A xenolinux-2.4.25-sparse/include/linux/sched.h
index c6324ee21d01efee83f49039937722b127d842ec..1c5b4c73700e3a7dcb024c68cfb28b882987bc54 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,9 +5,9 @@
 #  cd xenolinux-<version>-sparse
 #  ./mkbuildtree <build dir>
 #  cd <build dir>
-#  ARCH=xeno make oldconfig
-#  ARCH=xeno make dep
-#  ARCH=xeno make bzImage
+#  ARCH=xen make oldconfig
+#  ARCH=xen make dep
+#  ARCH=xen make bzImage
 #  (<build dir> should be a vanilla linux tree with matching version)
 
 all:   
diff --git a/README b/README
index c3c67b968e5c24691f1b8469c569c24109751e4d..ce84bc357bab2711d84fdcfaeb36772a0e5f858d 100644 (file)
--- a/README
+++ b/README
@@ -62,8 +62,7 @@ regularly use it to host complex applications such as PostgreSQL,
 Apache, BK servers etc. It runs every user-space applications we've
 tried.  We refer to our version of Linux ported to run on Xen as
 "XenoLinux", although really it's just standard Linux ported to a new
-virtual CPU architecture that we call xeno-x86 (abbreviated to just
-"xeno").
+virtual CPU architecture that we call xen-x86.
 
 NetBSD has been ported to Xen by Christian Limpach, and will hopefully
 soon become part of the standard release. Work on a FreeBSD port has
@@ -147,7 +146,7 @@ can be used to clone the repository and perform a full build.
 
 The build procedure for xenolinux is slightly complicated as its done
 by running the 'mkbuildtree' script over a pristine Linux tree to turn
-it into a xenolinux tree by adding the 'xeno' architecture.
+it into a xenolinux tree by adding the 'xen' architecture.
 
 There's also a recent pre-built source tree on the project downloads
 page: http://www.cl.cam.ac.uk/netos/xen/downloads/xeno-1.2.tar.gz
@@ -160,6 +159,6 @@ README.CD contains some example invocations.
 
 See example Python scripts in tools/examples/ and the associated README.
 
-Further documentation is in docs/ (e.g., docs/Xeno-HOWTO), and also in
+Further documentation is in docs/ (e.g., docs/Xen-HOWTO), and also in
 
 
index a387d0694ece8f79594370a8e1d1b6155dd5a959..61c04d61d2971abaf5fd27cdeb75c24466d42392 100644 (file)
--- a/README.CD
+++ b/README.CD
@@ -577,7 +577,7 @@ like normal linux kernels. Modules should be installed under
 If there's some kernel feature that hasn't been built into our default
 kernel, there's a pretty good change that if its a non-hardware
 related option you'll just be able to enable it and rebuild.  If its
-not on the xconfig menu, hack the arch/xeno/config.in to put the menu
+not on the xconfig menu, hack the arch/xen/config.in to put the menu
 back in.
 
 If you're going to use the link local 169.254.1.x addresses to
index 97836315c8733e0a797c9f122bddff97c298ce27..8d6a4dfe9821efa606f917dfb26bcf3209080088 100644 (file)
@@ -21,7 +21,7 @@ clean:
 
 install: $(DOCUMENTS)
        mkdir -p $(prefix)/usr/share/doc/xen
-       cp -a $(DOCUMENTS) VBD-HOWTO.txt Xeno-1.2-HOWTO.txt $(prefix)/usr/share/doc/xen
+       cp -a $(DOCUMENTS) VBD-HOWTO.txt Xen-HOWTO.txt $(prefix)/usr/share/doc/xen
 
 %.pdf: %.ps
        ps2pdf $< $@
diff --git a/docs/Xen-HOWTO.txt b/docs/Xen-HOWTO.txt
new file mode 100644 (file)
index 0000000..3665a2c
--- /dev/null
@@ -0,0 +1,362 @@
+###########################################
+Xen HOWTO
+
+University of Cambridge Computer Laboratory
+
+http://www.cl.cam.ac.uk/netos/xen
+#############################
+
+
+Get Xen Source Code
+=============================
+
+The public master BK repository for the 1.2 release lives at:
+'bk://xen.bkbits.net/xeno-1.2.bk'
+
+To fetch a local copy, first download the BitKeeper tools at:
+http://www.bitmover.com/download with username 'bitkeeper' and
+password 'get bitkeeper'.
+
+Then install the tools and then run:
+# bk clone bk://xen.bkbits.net/xeno-1.2.bk
+
+Under your current directory, a new directory named 'xeno-1.2.bk' has
+been created, which contains all the necessary source codes for the
+Xen hypervisor and Linux guest OSes.
+
+To get newest changes to the repository, run
+# cd xeno-1.2.bk
+# bk pull
+
+
+Build Xen
+=============================
+
+Hint: To see how to build Xen and all the control tools, inspect the
+tools/misc/xen-clone script in the BK repository. This script can be
+used to clone the repository and perform a full build.
+
+To build Xen manually:
+
+# cd xeno-1.2.bk/xen
+# make clean
+# make
+
+This will (should) produce a file called 'xen' in the current
+directory.  This is the ELF 32-bit LSB executable file of Xen.  You
+can also find a gzip version, named 'xen.gz'.
+
+To install the built files on your server under /usr, type 'make
+install' at the root of the BK repository. You will need to be root to
+do this!
+
+Hint: There is also a 'make dist' rule which copies built files to an
+install directory just outside the BK repo; if this suits your setup,
+go for it.
+
+
+Build Linux as a Xen guest OS
+==============================
+
+This is a little more involved since the repository only contains a
+"sparse" tree -- this is essentially an 'overlay' on a standard linux
+kernel source tree. It contains only those files currently 'in play'
+which are either modified versions of files in the vanilla linux tree,
+or brand new files specific to the Xen port.
+
+So, first you need a vanilla linux-2.4.24 tree, which is located at:
+http://www.kernel.org/pub/linux/kernel/v2.4
+
+Then:
+  # mv linux-2.4.24.tar.gz /xeno-1.2.bk
+  # cd /xeno-1.2.bk
+  # tar -zxvf linux-2.4.24.tar.gz
+
+You'll find a new directory 'linux-2.4.24' which contains all
+the vanilla Linux 2.4.24 kernel source codes.
+
+Hint: You should choose the vanilla linux kernel tree that has the
+same version as the "sparse" tree.
+
+Next, you need to 'overlay' this sparse tree on the full vanilla Linux
+kernel tree:
+
+  # cd /xeno-1.2.bk/xenolinux-2.4.24-sparse
+  # ./mkbuildtree ../linux-2.4.24
+
+Finally, rename the buildtree since it is now a 'xenolinux' buildtree. 
+
+  # cd /xeno-1.2.bk
+  # mv linux-2.4.24 xenolinux-2.4.24
+
+Now that the buildtree is there, you can build the xenolinux kernel.
+The default configuration should work fine for most people (use 'make
+oldconfig') but you can customise using one of the other config tools
+if you want.
+
+  # cd /xeno-1.2.bk/xenolinux-2.4.24
+  # ARCH=xen make oldconfig   { or menuconfig, or xconfig, or config }  
+  # ARCH=xen make dep
+  # ARCH=xen make bzImage
+
+Assuming the build works, you'll end up with
+/xeno-1.2.bk/xenolinux-2.4.24/arch/xen/boot/xenolinux.gz. This is the
+gzip version of XenoLinux kernel image.
+
+
+Build the Domain Control Tools
+==============================
+
+Under '/xeno-1.2.bk/tools', there are three sub-directories:
+'balloon', 'xc' and 'misc', each containing
+a group of tools. You can enter any of the four sub-directories
+and type 'make' to compile the corresponding group of tools.
+Or you can type 'make' under '/xeno-1.2.bk/tools' to compile
+all the tools.
+
+In order to compile the control-interface library in 'xc' you must
+have zlib and development headers installed. Also you will need at
+least Python v2.2. 
+
+'make install' in the tools directory will place executables and
+libraries in /usr/bin and /usr/lib. You will need to be root to do this!
+
+As noted earlier, 'make dist' installs files to a local 'install'
+directory just outside the BK repository. These files will then need
+to be installed manually onto the server.
+
+The Example Scripts
+===================
+
+The scripts in tools/examples/ are generally useful for
+administering a Xen-based system.  You can install them by running
+'make install' in that directory.
+
+The python scripts (*.py) are the main tools for controlling
+Xen domains.
+
+'defaults' and 'democd' are example configuration files for starting
+new domains.
+
+'xendomains' is a Sys-V style init script for starting and stopping
+Xen domains when the system boots / shuts down.
+
+These will be discussed below in more detail.
+
+
+Installation
+==============================
+
+First:
+# cp /xen-1.2.bk/xen/xen.gz /boot/xen.gz
+# cp /xen-1.2.bk/xenolinux-2.4.24/arch/xen/boot/xenolinux.gz /boot/xenolinux.gz
+
+Second, you must have 'GNU Grub' installed. Then you need to edit
+the Grub configuration file '/boot/grub/menu.lst'.
+
+A typical Grub menu option might look like:
+
+title Xen 1.2 / XenoLinux 2.4.24
+        kernel /boot/xen.gz dom0_mem=131072 com1=115200,8n1 noht
+        module /boot/xenolinux.gz root=/dev/sda4 ro console=tty0
+
+The first line specifies which Xen image to use, and what command line
+arguments to pass to Xen. In this case we set the maximum amount of
+memory to allocate to domain0, and enable serial I/O at 115200 baud.
+We could also disable smp support (nosmp) or disable hyper-threading
+support (noht). If you have multiple network interface you can use
+ifname=ethXX to select which one to use. If your network card is
+unsupported, use ifname=dummy
+
+The second line specifies which XenoLinux image to use, and the
+standard linux command line arguments to pass to the kernel. In this
+case, we're configuring the root partition and stating that it should
+(initially) be mounted read-only (normal practice). 
+
+The following is a list of command line arguments to pass to Xen:
+
+ ignorebiostables Disable parsing of BIOS-supplied tables. This may
+                  help with some chipsets that aren't fully supported
+                  by Xen. If you specify this option then ACPI tables are
+                  also ignored, and SMP support is disabled.
+
+ noreboot         Don't reboot the machine automatically on errors.
+                  This is useful to catch debug output if you aren't
+                  catching console messages via the serial line.
+
+ nosmp            Disable SMP support.
+                  This option is implied by 'ignorebiostables'.
+
+ noacpi           Disable ACPI tables, which confuse Xen on some chipsets.
+                  This option is implied by 'ignorebiostables'.
+
+ watchdog         Enable NMI watchdog which can report certain failures.
+
+ noht             Disable Hyperthreading.
+
+ ifname=ethXX     Select which Ethernet interface to use.
+
+ ifname=dummy     Don't use any network interface.
+
+ com1=<baud>,DPS[,<io_base>,<irq>]
+ com2=<baud>,DPS[,<io_base>,<irq>]
+                  Xen supports up to two 16550-compatible serial ports.
+                  For example: 'com1=9600,8n1,0x408,5' maps COM1 to a
+                  9600-baud port, 8 data bits, no parity, 1 stop bit,
+                  I/O port base 0x408, IRQ 5.
+                  If the I/O base and IRQ are standard (com1:0x3f8,4;
+                  com2:0x2f8,3) then they need not be specified.
+
+ console=<specifier list>
+                  Specify the destination for Xen console I/O.
+                  This is a comma-separated list of, for example:
+                   vga:  use VGA console and allow keyboard input
+                   com1: use serial port com1
+                   com2H: use serial port com2. Transmitted chars will
+                          have the MSB set. Received chars must have
+                          MSB set.
+                   com2L: use serial port com2. Transmitted chars will
+                          have the MSB cleared. Received chars must
+                          have MSB cleared.
+                  The latter two examples allow a single port to be
+                  shared by two subsystems (eg. console and
+                  debugger). Sharing is controlled by MSB of each
+                  transmitted/received character.
+ [NB. Default for this option is 'com1,tty']
+
+ dom0_mem=xxx     Set the maximum amount of memory for domain0.
+
+ tbuf_size=xxx    Set the size of the per-cpu trace buffers, in pages
+                  (default 1).  Note that the trace buffers are only
+                  enabled in debug builds.  Most users can ignore
+                  this feature completely.
+
+Boot into Domain 0
+==============================
+
+Reboot your computer; After selecting the kernel to boot, stand back
+and watch Xen boot, closely followed by "domain 0" running the
+XenoLinux kernel.  Depending on which root partition you have assigned
+to XenoLinux kernel in Grub configuration file, you can use the
+corresponding username / password to log in.
+
+Once logged in, it should look just like any regular linux box. All
+the usual tools and commands should work as per usual.
+
+
+Start New Domains
+==============================
+
+You must be 'root' to start new domains.
+
+Make sure you have successfully configured at least one
+physical network interface. Then:
+
+# xen_nat_enable
+
+The xc_dom_create.py program is useful for starting Xen domains.
+You can specify configuration files using the -f switch on the command
+line.  The default configuration is in /etc/xc/defaults.  You can
+create custom versions of this to suit your local configuration.
+
+You can override the settings in a configuration file using command
+line arguments to xc_dom_create.py.  However, you may find it simplest
+to create a separate configuration file for each domain you start.
+
+xc_dom_create.py will print the local TCP port to which you should
+connect to perform console I/O. A suitable console client is provided
+by the Python module xenctl.console_client: running this module from
+the command line with <host> and <port> parameters will start a
+terminal session. This module is also installed as /usr/bin/xencons,
+from a copy in tools/misc/xencons.  An alternative to manually running
+a terminal client is to specify '-c' to xc_dom_create.py, or add
+'auto_console=True' to the defaults file. This will cause
+xc_dom_create.py to automatically become teh console terminal after
+starting the domain.
+
+Boot-time output can be directed to this 'virtual console' by
+specifying 'console=xencons0' as a boot parameter. It is also possible
+to log in via the virtual console. To do this, you must run a mingetty
+on the virtual console, which you can achieve as follows:
+ # mkdir -p /dev/xen
+ # mknod /dev/xen/cons c 4 123
+ # echo "c:2345:respawn:/sbin/mingetty --noclear xen/cons" >>/etc/inittab
+If you wish to permit root logins via the virtual console then you must
+also add 'xen/cons' to the list of trusted ttys in /etc/securetty.
+
+
+Manage Running Domains
+==============================
+
+You can see a list of existing domains with:
+# xc_dom_control.py list
+
+In order to stop a domain, you use:
+# xc_dom_control.py stop <domain_id>
+
+To shutdown a domain cleanly use:
+# xc_dom_control.py shutdown <domain_id>
+
+To destroy a domain immediately:
+# xc_dom_control.py destroy <domain_id>
+
+There are other more advanced options, including pinning domains to
+specific CPUs and saving / resuming domains to / from disk files.  To
+get more information, run the tool without any arguments:
+# xc_dom_control.py
+
+There is more information available in the Xen README files, the
+VBD-HOWTO and the contributed FAQ / HOWTO documents on the web.
+
+
+Other Control Tasks using Python
+================================
+
+A Python module 'Xc' is installed as part of the tools-install
+process. This can be imported, and an 'xc object' instantiated, to
+provide access to privileged command operations:
+
+# import Xc
+# xc = Xc.new()
+# dir(xc)
+# help(xc.domain_create)
+
+In this way you can see that the class 'xc' contains useful
+documentation for you to consult.
+
+A further package of useful routines (xenctl) is also installed:
+
+# import xenctl.utils
+# help(xenctl.utils)
+
+You can use these modules to write your own custom scripts or you can
+customise the scripts supplied in the Xen distribution.
+
+
+Automatically start / stop domains at boot / shutdown
+=====================================================
+
+A Sys-V style init script for RedHat systems is provided in
+tools/examples/xendomains.  When you run 'make install' in that
+directory, it should be automatically copied to /etc/init.d/.  You can
+then enable it using the chkconfig command, e.g.:
+
+# chkconfig --add xendomains
+
+By default, this will start the boot-time domains in runlevels 3, 4
+and 5.  To specify a domain is to start at boot-time, place its
+configuration file (or a link to it) under /etc/xc/auto/.
+
+The script will also stop ALL domains when the system is shut down,
+even domains that it did not start originally.
+
+You can also use the "service" command (part of the RedHat standard
+distribution) to run this script manually, e.g:
+
+# service xendomains start
+
+Starts all the domains with config files under /etc/xc/auto/.
+
+# service xendomains stop
+
+Shuts down ALL running Xen domains.
diff --git a/docs/Xeno-HOWTO.txt b/docs/Xeno-HOWTO.txt
deleted file mode 100644 (file)
index 7f3ad72..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-###########################################
-Xeno HOWTO
-
-University of Cambridge Computer Laboratory
-
-http://www.cl.cam.ac.uk/netos/xen
-#############################
-
-
-Get Xeno Source Codes
-==========================
-
-The public master BK repository for the 1.2 release lives at:
-'bk://xen.bkbits.net/xeno-1.2.bk'
-
-To fetch a local copy, first download the BitKeeper tools at:
-http://www.bitmover.com/download with username 'bitkeeper' and
-password 'get bitkeeper'.
-
-Then install the tools and then run:
-# bk clone bk://xen.bkbits.net/xeno-1.2.bk
-
-Under your current directory, a new directory named 'xeno-1.2.bk' has
-been created, which contains all the source codes for Xen and
-XenoLinux. 
-
-To get newest changes to the repository, run
-# cd xeno-1.2.bk
-# bk pull
-
-
-Build Xen
-=============================
-
-Hint: To see how to build Xen and all the control tools, inspect the
-tools/misc/xen-clone script in the BK repository. This script can be
-used to clone the repository and perform a full build.
-
-To build Xen manually:
-
-# cd xeno-1.2.bk/xen
-# make clean
-# make
-
-This will (should) produce a file called 'xen' in the current
-directory.  This is the ELF 32-bit LSB executable file of Xen.  You
-can also find a gzip version, named 'xen.gz'.
-
-To install the built files on your Xenoserver under /usr, type 'make
-install' at the root of the BK repository. You will need to be root to
-do this!
-
-Hint: There is also a 'make dist' rule which copies built files to an
-install directory just outside the BK repo; if this suits your setup,
-go for it.
-
-
-Build XenoLinux
-==============================
-
-This is a little more involved since the repository only contains a
-"sparse" tree -- this is essentially an 'overlay' on a standard linux
-kernel source tree. It contains only those files currently 'in play'
-which are either modified versions of files in the vanilla linux tree,
-or brand new files specific to XenoLinux.
-
-So, first you need a vanilla linux-2.4.24 tree, which is located at:
-http://www.kernel.org/pub/linux/kernel/v2.4
-
-Then:
-  # mv linux-2.4.24.tar.gz /xeno-1.2.bk
-  # cd /xeno-1.2.bk
-  # tar -zxvf linux-2.4.24.tar.gz
-
-You'll find a new directory 'linux-2.4.24' which contains all
-the vanilla Linux 2.4.24 kernel source codes.
-
-Hint: You should choose the vanilla linux kernel tree that has the
-same version as the "sparse" tree.
-
-Next, you need to 'overlay' this sparse tree on the full vanilla Linux
-kernel tree:
-
-  # cd /xeno-1.2.bk/xenolinux-2.4.24-sparse
-  # ./mkbuildtree ../linux-2.4.24
-
-Finally, rename the buildtree since it is now a xenolinux buildtree. 
-
-  # cd /xeno-1.2.bk
-  # mv linux-2.4.24 xenolinux-2.4.24
-
-Now that the buildtree is there, you can build the xenolinux kernel.
-The default configuration should work fine for most people (use 'make
-oldconfig') but you can customise using one of the other config tools
-if you want.
-
-  # cd /xeno-1.2.bk/xenolinux-2.4.24
-  # ARCH=xeno make oldconfig   { or menuconfig, or xconfig, or config }  
-  # ARCH=xeno make dep
-  # ARCH=xeno make bzImage
-
-Assuming the build works, you'll end up with
-/xeno-1.2.bk/xenolinux-2.4.24/arch/xeno/boot/xenolinux.gz. This is the
-gzip version of XenoLinux kernel image.
-
-
-Build the Domain Control Tools
-==============================
-
-Under '/xeno-1.2.bk/tools', there are three sub-directories:
-'balloon', 'xc' and 'misc', each containing
-a group of tools. You can enter any of the four sub-directories
-and type 'make' to compile the corresponding group of tools.
-Or you can type 'make' under '/xeno-1.2.bk/tools' to compile
-all the tools.
-
-In order to compile the control-interface library in 'xc' you must
-have zlib and development headers installed. Also you will need at
-least Python v2.2. 
-
-'make install' in the tools directory will place executables and
-libraries in /usr/bin and /usr/lib. You will need to be root to do this!
-
-As noted earlier, 'make dist' installs files to a local 'install'
-directory just outside the BK repository. These files will then need
-to be installed manually onto the Xenoserver.
-
-The Example Scripts
-===================
-
-The scripts in tools/examples/ are generally useful for
-administering a Xen-based system.  You can install them by running
-'make install' in that directory.
-
-The python scripts (*.py) are the main tools for controlling
-Xen domains.
-
-'defaults' and 'democd' are example configuration files for starting
-new domains.
-
-'xendomains' is a Sys-V style init script for starting and stopping
-Xen domains when the system boots / shuts down.
-
-These will be discussed below in more detail.
-
-
-Installation
-==============================
-
-First:
-# cp /xen-1.2.bk/xen/xen.gz /boot/xen.gz
-# cp /xen-1.2.bk/xenolinux-2.4.24/arch/xeno/boot/xenolinux.gz /boot/xenolinux.gz
-
-Second, you must have 'GNU Grub' installed. Then you need to edit
-the Grub configuration file '/boot/grub/menu.lst'.
-
-A typical Grub menu option might look like:
-
-title Xen 1.2 / XenoLinux 2.4.24
-        kernel /boot/xen.gz dom0_mem=131072 com1=115200,8n1 noht
-        module /boot/xenolinux.gz root=/dev/sda4 ro console=tty0
-
-The first line specifies which Xen image to use, and what command line
-arguments to pass to Xen. In this case we set the maximum amount of
-memory to allocate to domain0, and enable serial I/O at 115200 baud.
-We could also disable smp support (nosmp) or disable hyper-threading
-support (noht). If you have multiple network interface you can use
-ifname=ethXX to select which one to use. If your network card is
-unsupported, use ifname=dummy
-
-The second line specifies which XenoLinux image to use, and the
-standard linux command line arguments to pass to the kernel. In this
-case, we're configuring the root partition and stating that it should
-(initially) be mounted read-only (normal practice). 
-
-The following is a list of command line arguments to pass to Xen:
-
- ignorebiostables Disable parsing of BIOS-supplied tables. This may
-                  help with some chipsets that aren't fully supported
-                  by Xen. If you specify this option then ACPI tables are
-                  also ignored, and SMP support is disabled.
-
- noreboot         Don't reboot the machine automatically on errors.
-                  This is useful to catch debug output if you aren't
-                  catching console messages via the serial line.
-
- nosmp            Disable SMP support.
-                  This option is implied by 'ignorebiostables'.
-
- noacpi           Disable ACPI tables, which confuse Xen on some chipsets.
-                  This option is implied by 'ignorebiostables'.
-
- watchdog         Enable NMI watchdog which can report certain failures.
-
- noht             Disable Hyperthreading.
-
- ifname=ethXX     Select which Ethernet interface to use.
-
- ifname=dummy     Don't use any network interface.
-
- com1=<baud>,DPS[,<io_base>,<irq>]
- com2=<baud>,DPS[,<io_base>,<irq>]
-                  Xen supports up to two 16550-compatible serial ports.
-                  For example: 'com1=9600,8n1,0x408,5' maps COM1 to a
-                  9600-baud port, 8 data bits, no parity, 1 stop bit,
-                  I/O port base 0x408, IRQ 5.
-                  If the I/O base and IRQ are standard (com1:0x3f8,4;
-                  com2:0x2f8,3) then they need not be specified.
-
- console=<specifier list>
-                  Specify the destination for Xen console I/O.
-                  This is a comma-separated list of, for example:
-                   vga:  use VGA console and allow keyboard input
-                   com1: use serial port com1
-                   com2H: use serial port com2. Transmitted chars will
-                          have the MSB set. Received chars must have
-                          MSB set.
-                   com2L: use serial port com2. Transmitted chars will
-                          have the MSB cleared. Received chars must
-                          have MSB cleared.
-                  The latter two examples allow a single port to be
-                  shared by two subsystems (eg. console and
-                  debugger). Sharing is controlled by MSB of each
-                  transmitted/received character.
- [NB. Default for this option is 'com1,tty']
-
- dom0_mem=xxx     Set the maximum amount of memory for domain0.
-
- tbuf_size=xxx    Set the size of the per-cpu trace buffers, in pages
-                  (default 1).  Note that the trace buffers are only
-                  enabled in debug builds.  Most users can ignore
-                  this feature completely.
-
-Boot into Domain 0
-==============================
-
-Reboot your computer; After selecting the kernel to boot, stand back
-and watch Xen boot, closely followed by "domain 0" running the
-XenoLinux kernel.  Depending on which root partition you have assigned
-to XenoLinux kernel in Grub configuration file, you can use the
-corresponding username / password to log in.
-
-Once logged in, it should look just like any regular linux box. All
-the usual tools and commands should work as per usual.
-
-
-Start New Domains
-==============================
-
-You must be 'root' to start new domains.
-
-Make sure you have successfully configured at least one
-physical network interface. Then:
-
-# xen_nat_enable
-
-The xc_dom_create.py program is useful for starting Xen domains.
-You can specify configuration files using the -f switch on the command
-line.  The default configuration is in /etc/xc/defaults.  You can
-create custom versions of this to suit your local configuration.
-
-You can override the settings in a configuration file using command
-line arguments to xc_dom_create.py.  However, you may find it simplest
-to create a separate configuration file for each domain you start.
-
-xc_dom_create.py will print the local TCP port to which you should
-connect to perform console I/O. A suitable console client is provided
-by the Python module xenctl.console_client: running this module from
-the command line with <host> and <port> parameters will start a
-terminal session. This module is also installed as /usr/bin/xencons,
-from a copy in tools/misc/xencons.  An alternative to manually running
-a terminal client is to specify '-c' to xc_dom_create.py, or add
-'auto_console=True' to the defaults file. This will cause
-xc_dom_create.py to automatically become teh console terminal after
-starting the domain.
-
-Boot-time output can be directed to this 'virtual console' by
-specifying 'console=xencons0' as a boot parameter. It is also possible
-to log in via the virtual console. To do this, you must run a mingetty
-on the virtual console, which you can achieve as follows:
- # mkdir -p /dev/xen
- # mknod /dev/xen/cons c 4 123
- # echo "c:2345:respawn:/sbin/mingetty --noclear xen/cons" >>/etc/inittab
-If you wish to permit root logins via the virtual console then you must
-also add 'xen/cons' to the list of trusted ttys in /etc/securetty.
-
-
-Manage Running Domains
-==============================
-
-You can see a list of existing domains with:
-# xc_dom_control.py list
-
-In order to stop a domain, you use:
-# xc_dom_control.py stop <domain_id>
-
-To shutdown a domain cleanly use:
-# xc_dom_control.py shutdown <domain_id>
-
-To destroy a domain immediately:
-# xc_dom_control.py destroy <domain_id>
-
-There are other more advanced options, including pinning domains to
-specific CPUs and saving / resuming domains to / from disk files.  To
-get more information, run the tool without any arguments:
-# xc_dom_control.py
-
-There is more information available in the Xen README files, the
-VBD-HOWTO and the contributed FAQ / HOWTO documents on the web.
-
-
-Other Control Tasks using Python
-================================
-
-A Python module 'Xc' is installed as part of the tools-install
-process. This can be imported, and an 'xc object' instantiated, to
-provide access to privileged command operations:
-
-# import Xc
-# xc = Xc.new()
-# dir(xc)
-# help(xc.domain_create)
-
-In this way you can see that the class 'xc' contains useful
-documentation for you to consult.
-
-A further package of useful routines (xenctl) is also installed:
-
-# import xenctl.utils
-# help(xenctl.utils)
-
-You can use these modules to write your own custom scripts or you can
-customise the scripts supplied in the Xen distribution.
-
-
-Automatically start / stop domains at boot / shutdown
-=====================================================
-
-A Sys-V style init script for RedHat systems is provided in
-tools/examples/xendomains.  When you run 'make install' in that
-directory, it should be automatically copied to /etc/init.d/.  You can
-then enable it using the chkconfig command, e.g.:
-
-# chkconfig --add xendomains
-
-By default, this will start the boot-time domains in runlevels 3, 4
-and 5.  To specify a domain is to start at boot-time, place its
-configuration file (or a link to it) under /etc/xc/auto/.
-
-The script will also stop ALL domains when the system is shut down,
-even domains that it did not start originally.
-
-You can also use the "service" command (part of the RedHat standard
-distribution) to run this script manually, e.g:
-
-# service xendomains start
-
-Starts all the domains with config files under /etc/xc/auto/.
-
-# service xendomains stop
-
-Shuts down ALL running Xen domains.
index 84003de1b6cd0405457359b33b4cf21caeeac5bc..2df158fff8130718bdc678c46811a88c11be5ea7 100644 (file)
@@ -705,7 +705,7 @@ behaviours.
 \subsection{Internal API}
 
 To use the trace buffer functionality from within Xen, you must {\tt \#include
-<xeno/trace.h>}, which contains definitions related to the trace buffer.  Trace
+<xen/trace.h>}, which contains definitions related to the trace buffer.  Trace
 events are inserted into the buffer using the {\tt TRACE\_xD} ({\tt x} = 0, 1,
 2, 3, 4 or 5) macros.  These all take an event number, plus {\tt x} additional
 (32-bit) data as their arguments.  For trace buffer-enabled builds of Xen these
@@ -718,7 +718,7 @@ overheads.
 
 By default, the trace buffer is enabled only in debug builds (i.e. {\tt NDEBUG}
 is not defined).  It can be enabled separately by defining {\tt TRACE\_BUFFER},
-either in {\tt <xeno/config.h>} or on the gcc command line.
+either in {\tt <xen/config.h>} or on the gcc command line.
 
 \subsection{Dumping trace data}
 
index 0d2bcf469227809eacfd9bd2a483575bf08e9013..09cec283dfea41ef709e80a9beca320cfea622f9 100644 (file)
@@ -57,8 +57,8 @@ Xen Configuration
   Symbolic debugging infomration is quite helpful too:
   xeno.bk/xen/arch/i386/Rules.mk
     add -g to CFLAGS to compile Xen with symbols
-  xeno.bk/xenolinux-2.4.24-sparse/arch/xeno/Makefile
-    add -g to CFLAGS to compile XenoLinux with symbols
+  xeno.bk/xenolinux-2.4.24-sparse/arch/xen/Makefile
+    add -g to CFLAGS to compile Linux with symbols
 
   You may also want to consider dedicating a register to the
   frame pointer (disable the -fomit-frame-pointer compile flag).
@@ -97,7 +97,7 @@ GDB 6.0
 Usage
 -----
 
-1. Boot Xen and XenoLinux
+1. Boot Xen and Linux
 2. Interrupt Xen by pressing 'D' at the console
    You should see the console message: 
    pdb_handle_exception [0x88][0xfc5c9d88]
index 4f87a74e99e310481d0d6c69ce8b3cd68ebd2c7a..85ede91c138fd44393cf248dd80881c4bf6cc361 100644 (file)
@@ -9,7 +9,7 @@
  *              
  *        Date: May 2003
  * 
- * Environment: Xeno Minimal OS
+ * Environment: Xen Minimal OS
  * Description: a random collection of type definitions
  *
  ****************************************************************************
index aa944f50c35e31a7c0266047821df7c2ead0190f..0afd864cf5d93d1f52d64a0e624e4548dfa467f6 100644 (file)
@@ -96,7 +96,7 @@ void start_kernel(start_info_t *si)
     __sti();
     
     /* print out some useful information  */
-    printk("Xeno Minimal OS!\n");
+    printk("Xen Minimal OS!\n");
     printk("start_info:   %p\n",  si);
     printk("  nr_pages:   %lu",     si->nr_pages);
     printk("  shared_inf: %08lx\n", si->shared_info);
index 43ffb498ea445b416b8dfb9ca53ad1e31e8af25c..30da8c2c42638b1f502f7fce05fe333386dca3bb 100755 (executable)
@@ -86,11 +86,11 @@ cd ../..
 mv linux-${LINUX_VER} xenolinux-${LINUX_VER}
 cd xenolinux-${LINUX_VER}
 
-ARCH=xeno make oldconfig
-ARCH=xeno make dep
-ARCH=xeno make bzImage
-ARCH=xeno make dist || ARCH=xeno make install
-ARCH=xeno make modules
-ARCH=xeno make INSTALL_MOD_PATH=${TOP}/install modules_install
+ARCH=xen make oldconfig
+ARCH=xen make dep
+ARCH=xen make bzImage
+ARCH=xen make dist || ARCH=xen make install
+ARCH=xen make modules
+ARCH=xen make INSTALL_MOD_PATH=${TOP}/install modules_install
 cd ..
 
index f0a2127bcc486d7c8e27350c6a72e325014145a1..c82bb5c10d87381c5d62afe8ab7877cb15175d86 100644 (file)
@@ -1,13 +1,13 @@
 /******************************************************************************
  * xc_linux_restore.c
  * 
- * Restore the state of a Xenolinux session.
+ * Restore the state of a Linux session.
  * 
  * Copyright (c) 2003, K A Fraser.
  */
 
 #include "xc_private.h"
-#include <asm-xeno/suspend.h>
+#include <asm-xen/suspend.h>
 #include <zlib.h>
 
 /* This may allow us to create a 'quiet' command-line option, if necessary. */
index aece21a01770148dc4fe00900ff83ad86bc46668..5168a58bd2142bad2abb06d1abbd07596c89b9b7 100644 (file)
@@ -1,13 +1,13 @@
 /******************************************************************************
  * xc_linux_save.c
  * 
- * Save the state of a running Xenolinux session.
+ * Save the state of a running Linux session.
  * 
  * Copyright (c) 2003, K A Fraser.
  */
 
 #include "xc_private.h"
-#include <asm-xeno/suspend.h>
+#include <asm-xen/suspend.h>
 #include <zlib.h>
 
 /* This may allow us to create a 'quiet' command-line option, if necessary. */
index 8762790836af49167201e3773f52f50111b2f5b7..8e3cae3f52620c70f468c158db886fd51fc33c81 100644 (file)
@@ -16,7 +16,7 @@
 
 #include "xc.h"
 
-#include <asm-xeno/proc_cmd.h>
+#include <asm-xen/proc_cmd.h>
 
 /* from xen/include/hypervisor-ifs */
 #include <hypervisor-if.h>
index 23c647e4956050aa911c7a2d814c81b477afff77..ab8d46856ffede71ea8cec41933ae9559eed24b2 100644 (file)
@@ -10,7 +10,12 @@ KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 # This will be overriden for Xen and UML builds.
 SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
 ARCH ?= $(SUBARCH)
-ARCH := $(ARCH:xeno=xen) ## Temporary hack while users adjust to new archname
+
+## XXX The following hack can be discarded after users have adjusted to the
+## architectural name change 'xeno' -> 'xen'.
+ifeq ($(ARCH),xeno)
+  ARCH := xen
+endif
 
 KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
 
index f4d97a65ba9dbc703d2c27ad07aa64d7e787b493..2a7ff12adf84f115b7136f8c6f0636adc6396a14 100644 (file)
@@ -87,8 +87,8 @@ static void priv_conwrite(const char *s, unsigned int count)
     }
 }
 
-static void xen_console_write(struct console *co, const char *s, 
-                              unsigned int count)
+static void kcons_write(struct console *co, const char *s, 
+                        unsigned int count)
 {
     unsigned long flags;
     spin_lock_irqsave(&xen_console_lock, flags);
@@ -99,7 +99,7 @@ static void xen_console_write(struct console *co, const char *s,
     spin_unlock_irqrestore(&xen_console_lock, flags);
 }
 
-static kdev_t xen_console_device(struct console *c)
+static kdev_t kcons_device(struct console *c)
 {
     /*
      * This is the magic that binds our "struct console" to our
@@ -108,19 +108,17 @@ static kdev_t xen_console_device(struct console *c)
     return MKDEV(TTY_MAJOR, XEN_TTY_MINOR);
 }
 
-static struct console xen_console_info = {
-    name:              "xencons", /* Used to be xen_console, but we're only
-                                     actually allowed 8 charcters including
-                                     the terminator... */
-    write:             xen_console_write,
-    device:             xen_console_device,
-    flags:             CON_PRINTBUFFER,
-    index:             -1,
+static struct console kcons_info = {
+    name:    "xencons",
+    write:   kcons_write,
+    device:  kcons_device,
+    flags:   CON_PRINTBUFFER,
+    index:   -1,
 };
 
 void xen_console_init(void)
 {
-    register_console(&xen_console_info);
+    register_console(&kcons_info);
 }
 
 
@@ -137,7 +135,7 @@ asmlinkage int xprintk(const char *fmt, ...)
     va_end(args);
     
     /* Send the processed output directly to Xen. */
-    xen_console_write(NULL, printk_buf, printk_len);
+    kcons_write(NULL, printk_buf, printk_len);
 
     return 0;
 }
diff --git a/xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c b/xenolinux-2.4.25-sparse/arch/xen/lib/xen_proc.c
new file mode 100644 (file)
index 0000000..9c06dcd
--- /dev/null
@@ -0,0 +1,18 @@
+
+#include <linux/config.h>
+#include <linux/proc_fs.h>
+
+static struct proc_dir_entry *xen_base;
+
+struct proc_dir_entry *create_xen_proc_entry(const char *name, mode_t mode)
+{
+    if ( xen_base == NULL )
+        if ( (xen_base = proc_mkdir("xen", &proc_root)) == NULL )
+            panic("Couldn't create /proc/xen");
+    return create_proc_entry(name, mode, xen_base);
+}
+
+void remove_xen_proc_entry(const char *name)
+{
+    remove_proc_entry(name, xen_base);
+}
diff --git a/xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c b/xenolinux-2.4.25-sparse/arch/xen/lib/xeno_proc.c
deleted file mode 100644 (file)
index 9c06dcd..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#include <linux/config.h>
-#include <linux/proc_fs.h>
-
-static struct proc_dir_entry *xen_base;
-
-struct proc_dir_entry *create_xen_proc_entry(const char *name, mode_t mode)
-{
-    if ( xen_base == NULL )
-        if ( (xen_base = proc_mkdir("xen", &proc_root)) == NULL )
-            panic("Couldn't create /proc/xen");
-    return create_proc_entry(name, mode, xen_base);
-}
-
-void remove_xen_proc_entry(const char *name)
-{
-    remove_proc_entry(name, xen_base);
-}
diff --git a/xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h b/xenolinux-2.4.25-sparse/include/asm-xen/xen_proc.h
new file mode 100644 (file)
index 0000000..d62791e
--- /dev/null
@@ -0,0 +1,13 @@
+
+#ifndef __ASM_XEN_PROC_H__
+#define __ASM_XEN_PROC_H__
+
+#include <linux/config.h>
+#include <linux/proc_fs.h>
+
+extern struct proc_dir_entry *create_xen_proc_entry(
+    const char *name, mode_t mode);
+extern void remove_xen_proc_entry(
+    const char *name);
+
+#endif /* __ASM_XEN_PROC_H__ */
diff --git a/xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h b/xenolinux-2.4.25-sparse/include/asm-xen/xeno_proc.h
deleted file mode 100644 (file)
index d62791e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-
-#ifndef __ASM_XEN_PROC_H__
-#define __ASM_XEN_PROC_H__
-
-#include <linux/config.h>
-#include <linux/proc_fs.h>
-
-extern struct proc_dir_entry *create_xen_proc_entry(
-    const char *name, mode_t mode);
-extern void remove_xen_proc_entry(
-    const char *name);
-
-#endif /* __ASM_XEN_PROC_H__ */